home *** CD-ROM | disk | FTP | other *** search
/ START Magazine / START VOL 3 NO 7.st / VCR_ORG.ARC / RES_MOD.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-11-11  |  11.3 KB  |  413 lines

  1. {$M+}
  2. {$E+}
  3.  
  4. program Resource_Module;
  5.  
  6. {$I A:GEMSUBS.PAS }
  7. {$I A:AUXSUBS.PAS }
  8.  
  9.   Const
  10.        {$I B:VCR_Cnst.Pas }
  11.  
  12.   Type
  13.        {$I B:VCR_Type.Pas }
  14.  
  15.   Var
  16.        {$I B:VCR_Var.Pas }
  17.  
  18.  
  19.  procedure WSlide_Size(i, j, k : integer);
  20.     External ;
  21.  
  22.  procedure Get_PhoneRec(Letter : integer);
  23.     External ;
  24.  
  25.  procedure Erase_Cursor;
  26.     External ;
  27.  
  28.  procedure EditSave;
  29.     External ;
  30.  
  31.  procedure SaveSelect;
  32.     External ;
  33.  
  34.  procedure ExitSelect;
  35.     External ;
  36.  
  37.  procedure ClearSelect;
  38.     External ;
  39.  
  40.  procedure AbortSelect;
  41.     External ;
  42.  
  43.  procedure LetterSelect( i : integer ) ;
  44.     External ;
  45.  
  46.  procedure Get_MovieRec( Letter : integer );
  47.     External ;
  48.  
  49.  procedure Get_TapeNo;
  50.     External ;
  51.  
  52.  procedure DeleteSelect(Delete_Rec : integer);
  53.     External ;
  54.  
  55.  procedure Init_Files;
  56.     External ;
  57.  
  58.  procedure Val( S : string ; Var Result : integer ; Var Flag : Boolean ) ;
  59.     External ;
  60.  
  61.  procedure Alert_Box( i, j, k , l, m : integer ;
  62.                       S1, S2, S3 : string ; 
  63.                       n : integer ; Var Result : integer ) ;
  64.       External ;
  65.  
  66.   procedure Multi_PrtPhone;
  67.       External ;
  68.  
  69.   procedure Select_Window(Wind_Number : integer);
  70.       External ;
  71.  
  72.   procedure Save_Default;
  73.       External ;
  74.  
  75.   procedure Print_Contents;
  76.       External ;
  77.  
  78.   procedure Delete_Rec(Tape_No : integer) ;
  79.       External ;
  80.  
  81.  
  82.  procedure Draw_Logo( Var Logo_Result : integer );
  83.  
  84.   var
  85.      Logo        : Dialog_Ptr;
  86.      Logo_Screen : Tree_Index;
  87.      Logo_Item   : array[1..10] of integer;
  88.  
  89.    begin
  90.        Logo := New_Dialog(10, 0, 0, 40, 15);
  91.        Center_Dialog(Logo);
  92.  
  93.        Logo_Item[1] := Add_DItem(Logo, G_Text, 0, 0, 1, 40, 1, 0, 256 | 128);
  94.        Set_DText(Logo, Logo_Item[1], 'VCR Organizer',
  95.                  System_Font, TE_Center);
  96.  
  97.        Logo_Item[2] := Add_DItem(Logo, G_Text, 0, 0, 2, 40, 1, 0, 256 | 128);
  98.        Set_DText(Logo, Logo_Item[2], '=== =========',
  99.                  System_Font, TE_Center);
  100.  
  101.        Logo_Item[3] := Add_DItem(Logo, G_Text, 0, 0, 3, 40, 1, 0, 256 | 128);
  102.        Set_DText(Logo, Logo_Item[3], 'James Maki', System_Font, TE_Center);
  103.  
  104.        Logo_Item[4] := Add_DItem(Logo, G_BoxText,
  105.                                  Default | Touch_Exit | Selectable,
  106.                                  14, 7, 12, 1, -3, 4096 | 256 | 128);
  107.        Set_DText(Logo, Logo_Item[4], 'Continue', System_Font, TE_Center);
  108.  
  109.        Logo_Item[5] := Add_DItem(Logo, G_Text, 0, 0, 9, 40, 1, 0, 256 | 128);
  110.        Set_DText(Logo, Logo_Item[5], '<><><><><><><><><><><><><><><><><>',
  111.                  System_Font, TE_Center);
  112.  
  113.        Logo_Item[6] := Add_DItem(Logo, G_Text, 0, 0, 10, 40, 1, 0, 256 | 128);
  114.        Set_DText(Logo, Logo_Item[6], '<> Portions of this Program are <>',
  115.                  System_Font, TE_Center);
  116.  
  117.        Logo_Item[7] := Add_DItem(Logo, G_Text, 0, 0, 11, 40, 1, 0, 256 | 128);
  118.        Set_DText(Logo, Logo_Item[7], '<> Copyright   1986 OSS and CCD <>',
  119.                  System_Font, TE_Center);
  120.  
  121.        Logo_Item[8] := Add_DItem(Logo, G_Text, 0, 16, 11, 1, 1, 0, 256 | 128);
  122.        Set_DText(Logo, Logo_Item[8], chr($BD), System_Font, TE_Center);
  123.  
  124.        Logo_Item[9] := Add_DItem(Logo, G_Text, 0, 0, 12, 40, 1, 0, 256 | 128);
  125.        Set_DText(Logo, Logo_Item[9], '<>  Used by Permission of OSS.  <>',
  126.                  System_Font, TE_Center);
  127.  
  128.        Logo_Item[10] := Add_DItem(Logo, G_Text, 0, 0, 13, 40, 1, 0, 256 | 128);
  129.        Set_DText(Logo, Logo_Item[10], '<><><><><><><><><><><><><><><><><>',
  130.                  System_Font, TE_Center);
  131.  
  132.        Logo_Screen := Do_Dialog(Logo, 0);
  133.        Logo_Result := Logo_Screen;
  134.  
  135.        End_Dialog(Logo);
  136.        Delete_Dialog(Logo);
  137.    end;
  138.  
  139.  
  140.  procedure Set_MenuBar(NewMenu : integer);
  141.  
  142.    var
  143.        i : integer;
  144.  
  145.    begin
  146.      for i := 2 to 11 do
  147.          Menu_Disable(Do_Menu, MenuItem.Item[i]);
  148.  
  149.      Menu_Enable(Do_Menu, MenuItem.Item[2]);
  150.      Menu_Enable(Do_Menu, MenuItem.Item[3]);
  151.      Menu_Enable(Do_Menu, MenuItem.Item[4]);
  152.      Menu_Enable(Do_Menu, MenuItem.Item[5]);
  153.  
  154.      if NewMenu = 1 then
  155.         begin
  156.           Menu_Enable(Do_Menu, MenuItem.Item[6]);
  157.           Menu_Enable(Do_Menu, MenuItem.Item[9]);
  158.           if VCR_Retrieve then
  159.              Menu_Enable(Do_Menu, MenuItem.Item[11])
  160.           else
  161.              begin
  162.                Menu_Enable(Do_Menu, MenuItem.Item[7]);
  163.                Menu_Enable(Do_Menu, MenuItem.Item[8]);
  164.              end;
  165.         end;
  166.    end;
  167.  
  168.  
  169.  procedure Open_DO_Wind( i : integer ) ;
  170.  
  171.    var
  172.        Wind_Type : integer;
  173.  
  174.  
  175.    begin
  176.      if N_Window < 7 then
  177.         begin
  178.           if NOT VCR_Retrieve and (i = 1) then
  179.              begin
  180.                VCR_Check[1,Tape_Current] := false;
  181.                VCR_Check[2,Tape_Current] := false;
  182.              end;
  183.           if Wind_Handle[i] > 0 then
  184.              begin
  185.                Bring_To_Front(Wind_Handle[i]);
  186.                Work_Rect(Wind_Handle[i], x0, y0, w0, h0);
  187.                Select_Window(Wind_Handle[i]);
  188.              end
  189.           else
  190.              begin
  191.                Slide_Pos := 1;
  192.                if i = 1 then
  193.                   Wind_Type := $01 + $02
  194.                else
  195.                   if (i = 5) OR (i = 4) then
  196.                      Wind_Type := $01 + $40 + $80 + $100
  197.                   else
  198.                      Wind_Type := $01 ;
  199.                Wind_Handle[i] := New_Window(Wind_Type, Wind_Name[i],
  200.                                  Wind_Coor[i,1], Wind_Coor[i,2],
  201.                                  Wind_Coor[i,3], Wind_Coor[i,4]);
  202.                Open_Window(Wind_Handle[i],
  203.                            Wind_Coor[i,1], Wind_Coor[i,2],
  204.                            Wind_Coor[i,3], Wind_Coor[i,4]);
  205.                N_Window := N_Window + 1;
  206.              end;
  207.  
  208.           if (i = 4) OR (i = 5) then
  209.               Wind_Set(Wind_Handle[i], WF_VSlide, Slide_Pos, Dummy,
  210.                        Dummy, Dummy);
  211.         end
  212.      else
  213.         Alert_Box(6,0,7,0,8,'Continue',No_Sp,No_Sp,1,i);
  214.    end;
  215.  
  216.  
  217.   procedure Do_Close_Window( Wind_Msg : integer ) ;
  218.  
  219.    var  
  220.        i, j  : integer;
  221.  
  222.    begin
  223.      N_Window := N_Window - 1;
  224.      Set_MenuBar(0);
  225.  
  226.      Close_Window(Wind_Msg);
  227.      Delete_Window(Wind_Msg);
  228.  
  229.      for i := 1 to 5 do
  230.          if Wind_Msg = Wind_Handle[i] then
  231.             Wind_Handle[i] := -20;
  232.    end;
  233.  
  234.  
  235.  procedure SetUpMenu;
  236.  
  237.   var
  238.       i : integer ;
  239.  
  240.    begin
  241.      With MenuItem do
  242.      begin
  243.        DO_Menu := New_Menu(12, '  VCR Organizer  ');
  244.  
  245.        Title[1] := Add_MTitle(DO_Menu, '  File    ');
  246.        Title[2] := Add_MTitle(DO_Menu, '  Record  ');
  247.  
  248.        Item[1]  := Add_MItem(DO_Menu, Title[1], '   Enter Data     ');
  249.        Item[2]  := Add_MItem(DO_Menu, Title[1], '   Print Contents ');
  250.        Item[3]  := Add_MItem(DO_Menu, Title[1], '   Print Cards    ');
  251.        Item[4]  := Add_MItem(DO_Menu, Title[1], '------------------');
  252.        Item[4]  := Add_MItem(DO_Menu, Title[1], '   Exit Program   ');
  253.  
  254.        Item[6]  := Add_MItem(DO_Menu, Title[2], ' ^S - Save      ');
  255.        Item[7]  := Add_MItem(DO_Menu, Title[2], '      Save/Exit ');
  256.        Item[8]  := Add_MItem(DO_Menu, Title[2], '      Clear     ');
  257.        Item[9]  := Add_MItem(DO_Menu, Title[2], '      Exit      ');
  258.        Item[10] := Add_MItem(DO_Menu, Title[2], '----------------');
  259.        Item[11] := Add_MItem(DO_Menu, Title[2], '      Delete    ');
  260.  
  261.        for i := 2 to 11 do
  262.            Menu_Disable(DO_Menu, Item[i]);
  263.  
  264.        Menu_Enable(DO_Menu, Item[2]);
  265.        Menu_Enable(DO_Menu, Item[3]);
  266.        Menu_Enable(DO_Menu, Item[5]);
  267.  
  268.      end;
  269.      Hide_Mouse;
  270.      Draw_Menu(DO_Menu);
  271.      Show_Mouse;
  272.    end;
  273.  
  274.  
  275.   procedure ExitProgram;
  276.  
  277.     var
  278.         i, j : integer;
  279.  
  280.     begin
  281.       Rewrite(CheckFv);
  282.       Rewrite(InitialFv);
  283.       Rewrite(NameFv);
  284.       Rewrite(DeleteFv);
  285.  
  286.       Write(InitialFv,VCR_Current);      { Dummy Input for location 0 }
  287.       Write(InitialFv,VCR_Current);
  288.  
  289.       Write(InitialFv,Tape_Current);
  290.  
  291.       if VCR_Current > 1 then
  292.          begin
  293.            for j := 0 to VCR_Current do
  294.                for i := 1 to 2 do
  295.                    Write(InitialFv,VCR_Next[i,j]);
  296.  
  297.            for i := 0 to VCR_Current do
  298.                Write(InitialFv,VCR_TapeNo[i]);
  299.  
  300.            for i := 0 to VCR_Current do
  301.                Write(InitialFv,VCR_Count[i]);
  302.  
  303.            for j := 0 to VCR_Current do
  304.                for i := 0 to 6 do
  305.                    Write(InitialFv,VCR_Tape[i,j]);
  306.  
  307.            for j := 1 to 2 do
  308.                for i := 0 to Tape_Current do
  309.                    Write(InitialFv,VCR_Order[j,i]);
  310.  
  311.            for j := 0 to VCR_Current do
  312.                for i := 1 to 2 do
  313.                    Write(CheckFv,VCR_Check[i,j]);
  314.  
  315.            for i := 0 to VCR_Current do
  316.                Write(NameFv,VCR_Name[i]);
  317.          end;
  318.  
  319.       for j := 0 to 26 do
  320.           for i := 1 to 2 do
  321.               Write(InitialFv,VCR_Point[i,j]);
  322.  
  323.       for i := 1 to VCR_Current do
  324.           Write(DeleteFv,Movie_Delete[i]);
  325.  
  326.       for i := 1 to Tape_Current do
  327.           Write(DeleteFv,Tape_Delete[i]);
  328.  
  329.       Close(CheckFv);
  330.       Close(InitialFv);
  331.       Close(NameFv);
  332.       Close(DeleteFv);
  333.     end;
  334.  
  335.  
  336.   procedure SelectSave ;
  337.  
  338.      begin
  339.        if Module = Wind_Handle[1] then      { Save Selected }
  340.           begin
  341.             if VCR_Retrieve then
  342.                begin
  343.                  EditSave;
  344.                  Do_Close_Window(Wind_Handle[1]);
  345.                  if Name_Select > 0 then
  346.                     Get_MovieRec(Letter);
  347.                end
  348.             else
  349.                SaveSelect;
  350.           end
  351.        else
  352.           SaveSelect;
  353.      end ;
  354.  
  355.  procedure Menu_Select;
  356.  
  357.   var
  358.       i, j,
  359.       Tape_No,
  360.       Current_Rec : integer;
  361.       SavePath    : Path_Name;
  362.  
  363.   begin
  364.    With Gem_Result do
  365.    begin
  366.    Case msg[4] of
  367.        8 : Draw_Logo( i );
  368.       18 : begin
  369.              VCR_Retrieve := false;
  370.              Set_MenuBar(1);
  371.              Prev_Module := -25;
  372.              Open_DO_Wind(1);           { Select Address Window }
  373.            end;
  374.       19 : Print_Contents;              {  Select Print Contents  }
  375.       20 : Multi_PrtPhone;              {  Select Print Label  }
  376.       22 : begin
  377.              ExitProgram;                           { Selected Exit  }
  378.              ExitPrompt := true;                    { Set Boolean    }
  379.              for i := 1 to 5 do
  380.                  if Wind_Handle[i] > 0 then         { Close Window   }
  381.                     begin
  382.                       Close_Window(Wind_Handle[i]);
  383.                       Delete_Window(Wind_Handle[i]);
  384.                     end;
  385.            end;
  386.       23 : SelectSave ;
  387.       24 : ExitSelect;
  388.       25 : ClearSelect;
  389.       26 : AbortSelect;
  390.       28 : if Module = Wind_Handle[1] then         { Delete Selected }
  391.               begin
  392.                 Hide_Mouse;
  393.                 if Name_Select > 0 then
  394.                    Tape_No := VCR_TapeNo[Name_Select]
  395.                 else
  396.                    Tape_No := Output_Tape[Tape_Select];
  397.                 Delete_Rec(Tape_No);
  398.                 Tape_Delete[Tape_No] := True;
  399.                 ClearSelect;
  400.                 Do_Close_Window(Wind_Handle[1]);
  401.                 VCR_Retrieve := false;
  402.                 Show_Mouse;
  403.               end;
  404.     end;
  405.     Menu_Normal(DO_Menu, msg[3]);
  406.    end;
  407.   end;
  408.  
  409.  
  410. BEGIN
  411. END.
  412.  
  413.